package io.github.biezhi.elves.service;

import java.util.List;

import io.github.biezhi.elves.model.CompAnnualReports;
import io.github.biezhi.elves.qcc.model.CompAnalysis;
import io.github.biezhi.elves.qcc.model.CompBasic;
import io.github.biezhi.elves.qcc.model.CompBasicInfo;
import io.github.biezhi.elves.qcc.model.CompChangeRecord;
import io.github.biezhi.elves.qcc.model.CompQccCrawl;
import io.github.biezhi.elves.qcc.model.OutboundInvestment;

public interface QccRealTimeService {

	/**
	 * 本地查询未爬取的工商企业信息(企业名称)
	 * @param num 限制查询多少条，sql表示为limit num
	 * @return
	 */
	List<CompBasic> queryCompBasic(Integer num);
	
	/**
	 * 根据compName更新企业是否爬取状态
	 */
	void updateSpiderState(String compName);
	
	/**
	 * 将爬取出来的数据存放到数据库表中
	 */
	void insertSpiderData(CompQccCrawl compQccCrawl);
	
	/**
	 * 查询未解析(即is_resolve=0)的CompQccCrawl
	 * @param num
	 * @return
	 */
	public List<CompQccCrawl> queryCompQccCrawl(Integer num);
	
	/**
	 * 已经解析过的数据，根据compId将is_resolve更新为1
	 * @param compId
	 */
	public void updateResolveState(Long compId);
	
	/**
	 * 将解析出来的基础数据存放到数据库表中
	 * @param compAnalysis
	 */
	public void insertCompAnalysis(CompAnalysis compAnalysis);
	
	/**
	 * 将解析出来的企业变更记录数据存放到数据库表中
	 * @param compChangeRecord
	 */
	public void insertCompChangeRecord(CompChangeRecord compChangeRecord);
	
	/**
	 * 将解析出来的企业对外投资数据存放到数据库表中
	 * @param outboundInvestment
	 */
	public void insertOutboundInvestment(OutboundInvestment outboundInvestment);
	
	/**
	 * 将解析出来的图谱数据存放到数据库表中
	 */
	public void insertCompBasicInfo(CompBasicInfo compBasicInfo);
	
	/**
	 * 查询企业变更记录表
	 * @param qccId
	 * @return
	 */
	public List<CompChangeRecord> queryCompChangeRecord(String qccId);
	
	/**
	 * 查询对外投资表
	 * @param qccId
	 * @return
	 */
	public List<OutboundInvestment> queryOutboundInvestment(String qccId);
	
	/**
	 * 查询解析后企业信息表
	 * @param qccId
	 * @return
	 */
	public CompAnalysis queryCompAnalysis(String qccId);
	
	/**
	 * 查询企业信息表
	 * @param num
	 * @return
	 */
	public List<CompBasicInfo> queryCompBasicInfo(Integer num);
	
	/**
	 * 查询年报表
	 * @param pripid
	 * @return
	 */
	public List<CompAnnualReports> queryCompAnnualReports(String pripid);
	/**
	 * 更新t_comp_basic_info状态
	 * @param qccId
	 */
	public void updateSaveState(String qccId);
	
	/**
	 * 更新json数据到t_comp_basic_info表
	 * @param compBasic 企业基本信息
	 * @param outboundInvestment 对外投资信息
	 * @param historicalChange 企业变更信息
	 * @param annualReports	企业年报
	 * @param qccId
	 */
	public void updateJsonData(String compBasic,String outboundInvestment,String historicalChange,String annualReports,String qccId);

}
